code vault - commandlinetoargvwWhat links here?

Code



PWCHAR*
    CommandLineToArgvW(
        PWCHAR CmdLine,
        int* _argc
        )
    {
        PWCHAR* argv;
        PWCHAR  _argv;
        ULONG   len;
        ULONG   argc;
        WCHAR   a;
        ULONG   i, j;


BOOLEAN in_QM; BOOLEAN in_TEXT; BOOLEAN in_SPACE;

len = wcslen(CmdLine); i = ((len+2)/2)*sizeof(PVOID) + sizeof(PVOID);

argv = (PWCHAR*)GlobalAlloc(GMEM_FIXED, i + (len+2)*sizeof(WCHAR));

_argv = (PWCHAR)(((PUCHAR)argv)+i);

argc = 0; argv[argc] = _argv; in_QM = FALSE; in_TEXT = FALSE; in_SPACE = TRUE; i = 0; j = 0;

while( a = CmdLine[i] ) { if(in_QM) { if(a == '\"') { in_QM = FALSE; } else { _argv[j] = a; j++; } } else { switch(a) { case '\"': in_QM = TRUE; in_TEXT = TRUE; if(in_SPACE) { argv[argc] = _argv+j; argc++; } in_SPACE = FALSE; break; case ' ': case '\t': case '\n': case '\r': if(in_TEXT) { _argv[j] = '\0'; j++; } in_TEXT = FALSE; in_SPACE = TRUE; break; default: in_TEXT = TRUE; if(in_SPACE) { argv[argc] = _argv+j; argc++; } _argv[j] = a; j++; in_SPACE = FALSE; break; } } i++; } _argv[j] = '\0'; argv[argc] = NULL;

(*_argc) = argc; return argv; }

From http://alter.org.ua/en/docs/win/args/
code vault - commandlinetoargvw
filename:code vault - commandlinetoargvw
filename:code%20vault%20%2D%20commandlinetoargvw
last edit:March 26 2009 20:02:36 (5519 days ago)
ct = 1714967166.000000 = May 05 2024 23:46:06
ft = 1238112156.000000 = March 26 2009 20:02:36
dt = 476855010.000000